package basic.study.leetcode;

/**
 * @ClassName Easy70
 * @Description 爬楼梯
 * @Company inspur
 * @Author Kevin
 * @Date 2020/6/23 15:35
 * @Version 1.0
 */
public class Easy70 {
    /**
     * dp
     */
    class Solution {
        public int climbStairs(int n) {
            if(n == 1 || n == 2) return n;

            int pre = 1;
            int cur = 2;
            for(int i = 3; i <= n; i++) {
                int temp = cur;
                cur = cur + pre;
                pre = temp;
            }
            return cur;
        }
    }

    /**
     * dp
     */
    class Solution1 {
        public int climbStairs(int n) {
            if(n == 1 || n == 2) return n;

            int[] dp = new int[n+1];
            dp[1] = 1;
            dp[2] = 2;
            for(int i = 3; i <= n; i++) {
                dp[i] = dp[i-1] + dp[i-2];
            }
            return dp[n];
        }
    }
}
